using System;
using System.Collections.Generic;
using System.Text;

namespace Mila.Data
{
    /// <summary>
    /// Represents a 3D model made of polygons (faces).
    /// </summary>
    public class Model
    {
        private string name = "";
        private string packageName = "";
        private Vertex[] vertices = null;
        private VertexAttributes[] vertexAttributes = null;
        private FaceSet[] faceSets = null;
        private double radius;

        #region Getters_And_Setters

        /// <summary>
        /// Gets or sets the name of the model.
        /// </summary>
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        /// <summary>
        /// Gets or sets the name of the package from which this model was loaded.
        /// </summary>
        public string PackageName
        {
            get { return packageName; }
            set { packageName = value; }
        }

        /// <summary>
        /// Gets or sets the array of vertices used to draw the model.
        /// </summary>
        public Vertex[] Vertices
        {
            get { return vertices; }
            set { vertices = value; }
        }

        /// <summary>
        /// Gets or sets the array of vertex attributes used to draw the vertices of the model.
        /// </summary>
        public VertexAttributes[] VertexAttributes
        {
            get { return vertexAttributes; }
            set { vertexAttributes = value; }
        }

        /// <summary>
        /// Gets or sets the array of face sets that contain the faces of the model.
        /// </summary>
        public FaceSet[] FaceSets
        {
            get { return faceSets; }
            set { faceSets = value; }
        }

        /// <summary>
        /// Gets or sets the radius of the origin-centered bounding sphere around this model.
        /// </summary>
        public double Radius
        {
            get { return radius; }
            set { radius = value; }
        }

        #endregion
    }
}
